package kubayaxi.video.client.service;

import kubayaxi.video.client.request.video.AddVideoRecordDTO;
import kubayaxi.video.mybatis.customize.model.video.dto.DeleteVideoDTO;
import kubayaxi.video.mybatis.customize.model.video.dto.GetIndexVideoDTO;
import kubayaxi.video.mybatis.customize.model.video.dto.GetPublishListDTO;
import kubayaxi.video.mybatis.customize.model.video.dto.GetRelatedVideoDTO;
import kubayaxi.video.client.request.video.ChangeFollowStatusDTO;
import kubayaxi.video.client.request.video.ChangeLikeStatusDTO;
import kubayaxi.video.client.request.video.GetVideoInfoDTO;
import kubayaxi.video.client.response.video.GetVideoInfoVO;
import kubayaxi.video.mybatis.customize.model.video.vo.GetPublishListVO;
import kubayaxi.video.mybatis.customize.model.video.vo.GetRelatedVideoVO;
import kubayaxi.video.service.base.common.request.BaseRequest;
import kubayaxi.video.mybatis.customize.model.video.vo.GetIndexVideoVO;
import kubayaxi.video.service.base.common.vo.CommonPageResult;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;


public interface IVideoService {
    List<GetIndexVideoVO> getIndexVideo(BaseRequest<GetIndexVideoDTO> dto);

    GetVideoInfoVO getVideoInfo(BaseRequest<GetVideoInfoDTO> dto);

    void changeFollowStatus(BaseRequest<ChangeFollowStatusDTO> dto);

    void changeLikeStatus(BaseRequest<ChangeLikeStatusDTO> dto);

    List<GetRelatedVideoVO> getRelatedVideo(BaseRequest<GetRelatedVideoDTO> dto);

    void addVideoRecord(BaseRequest<AddVideoRecordDTO> dto);

    void deleteVideo(BaseRequest<DeleteVideoDTO> dto);

    CommonPageResult<GetPublishListVO> getPublishList(BaseRequest<GetPublishListDTO> dto);
}
